/**
 * 具体装饰器B - 装饰器模式中的另一个具体装饰器
 * 
 * 为组件添加不同于ConcreteDecoratorA的新功能职责
 */
package com.mkx.structurals.decorator;

public class ConcreteDecoratorB extends Decorator {
    /**
     * 构造函数，注入要装饰的组件
     * 
     * @param component 要装饰的组件
     */
    public ConcreteDecoratorB(Component component) {
        super(component);
    }
    
    /**
     * 装饰器B特有的功能
     */
    private void addedFunctionalityB() {
        System.out.println("添加装饰器B的特有功能");
    }
    
    @Override
    public void operation() {
        // 先调用父类的operation，即被装饰组件的操作
        super.operation();
        // 再添加本装饰器的特有功能
        addedFunctionalityB();
    }
}